Having backups of your data is extremely important and you need to take some minutes to brainstorm about it (unless you have no important data on your computer and you use it for online things like checking your email or your data is saved in Google Drive or similar places, where you can recover them from any machine.... unless you forget your passwords!)
Unfortunately sometimes we have a disaster happen (like a hard disk which died suddenly) and is then when we realize that we should have taken care about it...
Over the years I have used many backup techniques and ideas, so I wanted to share on this howto my preferred ones, why, and for which purpose is each one, for example:
Simple backup: you copy all the contents from one place to another
Incremental backups: they are "snapshots" and you can recover a specific state / date of the backup
Selected backup: you backup only some things and leaving other that may be bigger in size and useless
Secured backups: they are protected with encryption, so that nobody can have access to this data
Updated computers: this is the tool I use the most, since I share the same work / tools between computers and I need them to have the tools always updated
For websites: Use a snapshot of the files using rdiff-backup and a dump copy of the database, these are 2 different things but you can easily restore an entire state of a website with this method
For personal work:
Update your system (apug) and use a demo configuration for unison, since it can be painful and slow to setup and review all the files:
cd ~ elive-skel upgrade .unison
Then read and edit the files inside ~/.unison
Some years ago I have started to use an own Home structure for my files, since then, it worked very good and very compatible with any OS (especially Elive :P), so let me share this concept here that may help others
So, the main structure is separated in 3 main directories:
Git: small size: this directory contains all the files that must require a history of their changes: mostly for script, confs, and small files
Inside there's another "git" directory which does automated git commits every 30 minutes, so there's an automated git history that I can go back and check old states in any moment
Inside that, there's a "home_linked" directory which contains all the files from my home that I want to have saved in changes, for example:
Data: medium size: this directory contains all the files that my environment needs to work, including source files and works, let's think about it as "everything that is not needed in the previous one or is too big to be on the previous one"
DataExtra: bigger size: this directory contains all the non-needed data that is very big, like music or big downloads, backups, chroots, mirrors, virtual machines, etc...
Some years ago I made this structure on my home in order to differentiate correctly what is each thing and where is put, because many applications and other things bloats your home directory with files that you are not meant to know or keep a track of them, so this structure makes things much cleaner and correctly updated / backed up
The confs of Git and Data are of course nicely shared between computers with unison
Both the first and the second one are meant to be located on my SSD disk (which is 256 GB), so they can fit correctly just like the rest of the OS. DataExtra instead, is meant to include links from an external or second hard disk, probably mechanical since is more cheap for the data size
Backups are important, and we need to brainstorm "how" they needs to be done, for example: